package com.agileboot.domain.app.product;

import com.agileboot.domain.app.product.command.AppProductDTO;
import com.agileboot.domain.app.product.db.AppLoanProductEntity;
import com.agileboot.domain.app.product.model.ProductFactory;
import com.agileboot.domain.app.product.model.ProductModel;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

@Service
@RequiredArgsConstructor
public class ProductService {

    private final ProductFactory productFactory;

    /**
     * 初始化基础信用信息
     *
     * @param bean
     * @return
     */
    public AppLoanProductEntity findProductInfo(AppProductDTO bean) {
        ProductModel productModel = productFactory.create();
        return productModel.selectById(bean.getProductId());
    }


    /**
     * 假设贷款利率与信用评分成正比
     * @param creditScore
     * @return
     */
    public double calculateLoanRate(int creditScore) {
        // 这里可以根据实际算法来计算贷款利率
        // 这里简单地假设贷款利率与信用评分成正比，最低利率为3%，最高利率为15%
        return 0.03 + 0.01 * creditScore / 850;
    }
}
